package com.taotao.common.JedisService;

import redis.clients.jedis.ShardedJedis;
import redis.clients.jedis.ShardedJedisPool;
/**
 * jedis常用操作工具类
 * @author Administrator
 *
 */
public class JedisService {
	/**
	 *  jedis分片连接池属性
	 */
	private ShardedJedisPool jedisPool;
	
	public JedisService(ShardedJedisPool jedisPool) {
		super();
		this.jedisPool = jedisPool;
	}
	
	/**
	 * 设置 key value
	 * @param key
	 * @param value
	 */
	public void set(String key, String value) {
	    // 从连接池中获取连接  
		ShardedJedis jedis = null;
		try {
			jedis = jedisPool.getResource();
			// 保存数据到缓存
			jedis.set(key, value);
		} finally{
			// 释放资源
			if(jedis !=null) jedis.close();
		}
	}
	
	/**
	 * 根据key获取value
	 * @param key
	 * @return
	 */
	public String get(String key) {
		ShardedJedis jedis = null; 
	    try {
			jedis = jedisPool.getResource();
			String value = jedis.get(key);
			return value;
		} finally {
			if(jedis !=null ) jedis.close();	
		}
	}
	
	/**
	 * 设置key,value同时设置生存时间seconds
	 * @param key
	 * @param seconds
	 * @param value
	 */
	public void setExpr(String key,Integer seconds , String value) {
		ShardedJedis jedis = null;
		try {
			jedis = jedisPool.getResource();
			jedis.setex(key, seconds, value);
		} finally {
			if(jedis !=null) jedis.close();
		}
	}
	/**
	 * 设置生存时间
	 * @param key
	 * @param seconds
	 */
	public void expire(String key, int seconds){
		ShardedJedis jedis = null;
		try {
			jedis = jedisPool.getResource();
			jedis.expire(key, seconds);
		} finally {
			if(jedis !=null) jedis.close();
		}
	}
	/**
	 * 判断redis缓存中是否存在
	 * @param key
	 * @return
	 */
	public Boolean exists(String key){
		ShardedJedis jedis = null;
		try {
			jedis = jedisPool.getResource();
			return jedis.exists(key);
		} finally {
			if(jedis !=null) jedis.close();
		}
	}

}
